--- /dev/null
+char *xhtml_entities =
+"<!-- Portions (C) International Organization for Standardization 1986\n"
+" Permission to copy in any form is granted for use with\n"
+" conforming SGML systems and applications as defined in\n"
+" ISO 8879, provided this notice is included in all copies.\n"
+"-->\n"
+"<!-- Character entity set. Typical invocation:\n"
+" <!ENTITY % HTMLlat1 PUBLIC\n"
+" \"-//W3C//ENTITIES Latin 1 for XHTML//EN\"\n"
+" \"http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent\">\n"
+" %HTMLlat1;\n"
+"-->\n"
+"\n"
+"<!ENTITY nbsp \" \"> <!-- no-break space = non-breaking space,\n"
+" U+00A0 ISOnum -->\n"
+"<!ENTITY iexcl \"¡\"> <!-- inverted exclamation mark, U+00A1 ISOnum -->\n"
+"<!ENTITY cent \"¢\"> <!-- cent sign, U+00A2 ISOnum -->\n"
+"<!ENTITY pound \"£\"> <!-- pound sign, U+00A3 ISOnum -->\n"
+"<!ENTITY curren \"¤\"> <!-- currency sign, U+00A4 ISOnum -->\n"
+"<!ENTITY yen \"¥\"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->\n"
+"<!ENTITY brvbar \"¦\"> <!-- broken bar = broken vertical bar,\n"
+" U+00A6 ISOnum -->\n"
+"<!ENTITY sect \"§\"> <!-- section sign, U+00A7 ISOnum -->\n"
+"<!ENTITY uml \"¨\"> <!-- diaeresis = spacing diaeresis,\n"
+" U+00A8 ISOdia -->\n"
+"<!ENTITY copy \"©\"> <!-- copyright sign, U+00A9 ISOnum -->\n"
+"<!ENTITY ordf \"ª\"> <!-- feminine ordinal indicator, U+00AA ISOnum -->\n"
+"<!ENTITY laquo \"«\"> <!-- left-pointing double angle quotation mark\n"
+" = left pointing guillemet, U+00AB ISOnum -->\n"
+"<!ENTITY not \"¬\"> <!-- not sign = angled dash,\n"
+" U+00AC ISOnum -->\n"
+"<!ENTITY shy \"­\"> <!-- soft hyphen = discretionary hyphen,\n"
+" U+00AD ISOnum -->\n"
+"<!ENTITY reg \"®\"> <!-- registered sign = registered trade mark sign,\n"
+" U+00AE ISOnum -->\n"
+"<!ENTITY macr \"¯\"> <!-- macron = spacing macron = overline\n"
+" = APL overbar, U+00AF ISOdia -->\n"
+"<!ENTITY deg \"°\"> <!-- degree sign, U+00B0 ISOnum -->\n"
+"<!ENTITY plusmn \"±\"> <!-- plus-minus sign = plus-or-minus sign,\n"
+" U+00B1 ISOnum -->\n"
+"<!ENTITY sup2 \"²\"> <!-- superscript two = superscript digit two\n"
+" = squared, U+00B2 ISOnum -->\n"
+"<!ENTITY sup3 \"³\"> <!-- superscript three = superscript digit three\n"
+" = cubed, U+00B3 ISOnum -->\n"
+"<!ENTITY acute \"´\"> <!-- acute accent = spacing acute,\n"
+" U+00B4 ISOdia -->\n"
+"<!ENTITY micro \"µ\"> <!-- micro sign, U+00B5 ISOnum -->\n"
+"<!ENTITY para \"¶\"> <!-- pilcrow sign = paragraph sign,\n"
+" U+00B6 ISOnum -->\n"
+"<!ENTITY middot \"·\"> <!-- middle dot = Georgian comma\n"
+" = Greek middle dot, U+00B7 ISOnum -->\n"
+"<!ENTITY cedil \"¸\"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->\n"
+"<!ENTITY sup1 \"¹\"> <!-- superscript one = superscript digit one,\n"
+" U+00B9 ISOnum -->\n"
+"<!ENTITY ordm \"º\"> <!-- masculine ordinal indicator,\n"
+" U+00BA ISOnum -->\n"
+"<!ENTITY raquo \"»\"> <!-- right-pointing double angle quotation mark\n"
+" = right pointing guillemet, U+00BB ISOnum -->\n"
+"<!ENTITY frac14 \"¼\"> <!-- vulgar fraction one quarter\n"
+" = fraction one quarter, U+00BC ISOnum -->\n"
+"<!ENTITY frac12 \"½\"> <!-- vulgar fraction one half\n"
+" = fraction one half, U+00BD ISOnum -->\n"
+"<!ENTITY frac34 \"¾\"> <!-- vulgar fraction three quarters\n"
+" = fraction three quarters, U+00BE ISOnum -->\n"
+"<!ENTITY iquest \"¿\"> <!-- inverted question mark\n"
+" = turned question mark, U+00BF ISOnum -->\n"
+"<!ENTITY Agrave \"À\"> <!-- latin capital letter A with grave\n"
+" = latin capital letter A grave,\n"
+" U+00C0 ISOlat1 -->\n"
+"<!ENTITY Aacute \"Á\"> <!-- latin capital letter A with acute,\n"
+" U+00C1 ISOlat1 -->\n"
+"<!ENTITY Acirc \"Â\"> <!-- latin capital letter A with circumflex,\n"
+" U+00C2 ISOlat1 -->\n"
+"<!ENTITY Atilde \"Ã\"> <!-- latin capital letter A with tilde,\n"
+" U+00C3 ISOlat1 -->\n"
+"<!ENTITY Auml \"Ä\"> <!-- latin capital letter A with diaeresis,\n"
+" U+00C4 ISOlat1 -->\n"
+"<!ENTITY Aring \"Å\"> <!-- latin capital letter A with ring above\n"
+" = latin capital letter A ring,\n"
+" U+00C5 ISOlat1 -->\n"
+"<!ENTITY AElig \"Æ\"> <!-- latin capital letter AE\n"
+" = latin capital ligature AE,\n"
+" U+00C6 ISOlat1 -->\n"
+"<!ENTITY Ccedil \"Ç\"> <!-- latin capital letter C with cedilla,\n"
+" U+00C7 ISOlat1 -->\n"
+"<!ENTITY Egrave \"È\"> <!-- latin capital letter E with grave,\n"
+" U+00C8 ISOlat1 -->\n"
+"<!ENTITY Eacute \"É\"> <!-- latin capital letter E with acute,\n"
+" U+00C9 ISOlat1 -->\n"
+"<!ENTITY Ecirc \"Ê\"> <!-- latin capital letter E with circumflex,\n"
+" U+00CA ISOlat1 -->\n"
+"<!ENTITY Euml \"Ë\"> <!-- latin capital letter E with diaeresis,\n"
+" U+00CB ISOlat1 -->\n"
+"<!ENTITY Igrave \"Ì\"> <!-- latin capital letter I with grave,\n"
+" U+00CC ISOlat1 -->\n"
+"<!ENTITY Iacute \"Í\"> <!-- latin capital letter I with acute,\n"
+" U+00CD ISOlat1 -->\n"
+"<!ENTITY Icirc \"Î\"> <!-- latin capital letter I with circumflex,\n"
+" U+00CE ISOlat1 -->\n"
+"<!ENTITY Iuml \"Ï\"> <!-- latin capital letter I with diaeresis,\n"
+" U+00CF ISOlat1 -->\n"
+"<!ENTITY ETH \"Ð\"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->\n"
+"<!ENTITY Ntilde \"Ñ\"> <!-- latin capital letter N with tilde,\n"
+" U+00D1 ISOlat1 -->\n"
+"<!ENTITY Ograve \"Ò\"> <!-- latin capital letter O with grave,\n"
+" U+00D2 ISOlat1 -->\n"
+"<!ENTITY Oacute \"Ó\"> <!-- latin capital letter O with acute,\n"
+" U+00D3 ISOlat1 -->\n"
+"<!ENTITY Ocirc \"Ô\"> <!-- latin capital letter O with circumflex,\n"
+" U+00D4 ISOlat1 -->\n"
+"<!ENTITY Otilde \"Õ\"> <!-- latin capital letter O with tilde,\n"
+" U+00D5 ISOlat1 -->\n"
+"<!ENTITY Ouml \"Ö\"> <!-- latin capital letter O with diaeresis,\n"
+" U+00D6 ISOlat1 -->\n"
+"<!ENTITY times \"×\"> <!-- multiplication sign, U+00D7 ISOnum -->\n"
+"<!ENTITY Oslash \"Ø\"> <!-- latin capital letter O with stroke\n"
+" = latin capital letter O slash,\n"
+" U+00D8 ISOlat1 -->\n"
+"<!ENTITY Ugrave \"Ù\"> <!-- latin capital letter U with grave,\n"
+" U+00D9 ISOlat1 -->\n"
+"<!ENTITY Uacute \"Ú\"> <!-- latin capital letter U with acute,\n"
+" U+00DA ISOlat1 -->\n"
+"<!ENTITY Ucirc \"Û\"> <!-- latin capital letter U with circumflex,\n"
+" U+00DB ISOlat1 -->\n"
+"<!ENTITY Uuml \"Ü\"> <!-- latin capital letter U with diaeresis,\n"
+" U+00DC ISOlat1 -->\n"
+"<!ENTITY Yacute \"Ý\"> <!-- latin capital letter Y with acute,\n"
+" U+00DD ISOlat1 -->\n"
+"<!ENTITY THORN \"Þ\"> <!-- latin capital letter THORN,\n"
+" U+00DE ISOlat1 -->\n"
+"<!ENTITY szlig \"ß\"> <!-- latin small letter sharp s = ess-zed,\n"
+" U+00DF ISOlat1 -->\n"
+"<!ENTITY agrave \"à\"> <!-- latin small letter a with grave\n"
+" = latin small letter a grave,\n"
+" U+00E0 ISOlat1 -->\n"
+"<!ENTITY aacute \"á\"> <!-- latin small letter a with acute,\n"
+" U+00E1 ISOlat1 -->\n"
+"<!ENTITY acirc \"â\"> <!-- latin small letter a with circumflex,\n"
+" U+00E2 ISOlat1 -->\n"
+"<!ENTITY atilde \"ã\"> <!-- latin small letter a with tilde,\n"
+" U+00E3 ISOlat1 -->\n"
+"<!ENTITY auml \"ä\"> <!-- latin small letter a with diaeresis,\n"
+" U+00E4 ISOlat1 -->\n"
+"<!ENTITY aring \"å\"> <!-- latin small letter a with ring above\n"
+" = latin small letter a ring,\n"
+" U+00E5 ISOlat1 -->\n"
+"<!ENTITY aelig \"æ\"> <!-- latin small letter ae\n"
+" = latin small ligature ae, U+00E6 ISOlat1 -->\n"
+"<!ENTITY ccedil \"ç\"> <!-- latin small letter c with cedilla,\n"
+" U+00E7 ISOlat1 -->\n"
+"<!ENTITY egrave \"è\"> <!-- latin small letter e with grave,\n"
+" U+00E8 ISOlat1 -->\n"
+"<!ENTITY eacute \"é\"> <!-- latin small letter e with acute,\n"
+" U+00E9 ISOlat1 -->\n"
+"<!ENTITY ecirc \"ê\"> <!-- latin small letter e with circumflex,\n"
+" U+00EA ISOlat1 -->\n"
+"<!ENTITY euml \"ë\"> <!-- latin small letter e with diaeresis,\n"
+" U+00EB ISOlat1 -->\n"
+"<!ENTITY igrave \"ì\"> <!-- latin small letter i with grave,\n"
+" U+00EC ISOlat1 -->\n"
+"<!ENTITY iacute \"í\"> <!-- latin small letter i with acute,\n"
+" U+00ED ISOlat1 -->\n"
+"<!ENTITY icirc \"î\"> <!-- latin small letter i with circumflex,\n"
+" U+00EE ISOlat1 -->\n"
+"<!ENTITY iuml \"ï\"> <!-- latin small letter i with diaeresis,\n"
+" U+00EF ISOlat1 -->\n"
+"<!ENTITY eth \"ð\"> <!-- latin small letter eth, U+00F0 ISOlat1 -->\n"
+"<!ENTITY ntilde \"ñ\"> <!-- latin small letter n with tilde,\n"
+" U+00F1 ISOlat1 -->\n"
+"<!ENTITY ograve \"ò\"> <!-- latin small letter o with grave,\n"
+" U+00F2 ISOlat1 -->\n"
+"<!ENTITY oacute \"ó\"> <!-- latin small letter o with acute,\n"
+" U+00F3 ISOlat1 -->\n"
+"<!ENTITY ocirc \"ô\"> <!-- latin small letter o with circumflex,\n"
+" U+00F4 ISOlat1 -->\n"
+"<!ENTITY otilde \"õ\"> <!-- latin small letter o with tilde,\n"
+" U+00F5 ISOlat1 -->\n"
+"<!ENTITY ouml \"ö\"> <!-- latin small letter o with diaeresis,\n"
+" U+00F6 ISOlat1 -->\n"
+"<!ENTITY divide \"÷\"> <!-- division sign, U+00F7 ISOnum -->\n"
+"<!ENTITY oslash \"ø\"> <!-- latin small letter o with stroke,\n"
+" = latin small letter o slash,\n"
+" U+00F8 ISOlat1 -->\n"
+"<!ENTITY ugrave \"ù\"> <!-- latin small letter u with grave,\n"
+" U+00F9 ISOlat1 -->\n"
+"<!ENTITY uacute \"ú\"> <!-- latin small letter u with acute,\n"
+" U+00FA ISOlat1 -->\n"
+"<!ENTITY ucirc \"û\"> <!-- latin small letter u with circumflex,\n"
+" U+00FB ISOlat1 -->\n"
+"<!ENTITY uuml \"ü\"> <!-- latin small letter u with diaeresis,\n"
+" U+00FC ISOlat1 -->\n"
+"<!ENTITY yacute \"ý\"> <!-- latin small letter y with acute,\n"
+" U+00FD ISOlat1 -->\n"
+"<!ENTITY thorn \"þ\"> <!-- latin small letter thorn,\n"
+" U+00FE ISOlat1 -->\n"
+"<!ENTITY yuml \"ÿ\"> <!-- latin small letter y with diaeresis,\n"
+" U+00FF ISOlat1 -->\n"
+"<!-- Special characters for XHTML -->\n"
+"\n"
+"<!-- Character entity set. Typical invocation:\n"
+" <!ENTITY % HTMLspecial PUBLIC\n"
+" \"-//W3C//ENTITIES Special for XHTML//EN\"\n"
+" \"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent\">\n"
+" %HTMLspecial;\n"
+"-->\n"
+"\n"
+"<!-- Portions (C) International Organization for Standardization 1986:\n"
+" Permission to copy in any form is granted for use with\n"
+" conforming SGML systems and applications as defined in\n"
+" ISO 8879, provided this notice is included in all copies.\n"
+"-->\n"
+"\n"
+"<!-- Relevant ISO entity set is given unless names are newly introduced.\n"
+" New names (i.e., not in ISO 8879 list) do not clash with any\n"
+" existing ISO 8879 entity names. ISO 10646 character numbers\n"
+" are given for each character, in hex. values are decimal\n"
+" conversions of the ISO 10646 values and refer to the document\n"
+" character set. Names are Unicode names. \n"
+"-->\n"
+"\n"
+"<!-- C0 Controls and Basic Latin -->\n"
+"<!ENTITY quot \""\"> <!-- quotation mark, U+0022 ISOnum -->\n"
+"<!ENTITY amp \"&#38;\"> <!-- ampersand, U+0026 ISOnum -->\n"
+"<!ENTITY lt \"&#60;\"> <!-- less-than sign, U+003C ISOnum -->\n"
+"<!ENTITY gt \">\"> <!-- greater-than sign, U+003E ISOnum -->\n"
+"<!ENTITY apos \"'\"> <!-- apostrophe = APL quote, U+0027 ISOnum -->\n"
+"\n"
+"<!-- Latin Extended-A -->\n"
+"<!ENTITY OElig \"Œ\"> <!-- latin capital ligature OE,\n"
+" U+0152 ISOlat2 -->\n"
+"<!ENTITY oelig \"œ\"> <!-- latin small ligature oe, U+0153 ISOlat2 -->\n"
+"<!-- ligature is a misnomer, this is a separate character in some languages -->\n"
+"<!ENTITY Scaron \"Š\"> <!-- latin capital letter S with caron,\n"
+" U+0160 ISOlat2 -->\n"
+"<!ENTITY scaron \"š\"> <!-- latin small letter s with caron,\n"
+" U+0161 ISOlat2 -->\n"
+"<!ENTITY Yuml \"Ÿ\"> <!-- latin capital letter Y with diaeresis,\n"
+" U+0178 ISOlat2 -->\n"
+"\n"
+"<!-- Spacing Modifier Letters -->\n"
+"<!ENTITY circ \"ˆ\"> <!-- modifier letter circumflex accent,\n"
+" U+02C6 ISOpub -->\n"
+"<!ENTITY tilde \"˜\"> <!-- small tilde, U+02DC ISOdia -->\n"
+"\n"
+"<!-- General Punctuation -->\n"
+"<!ENTITY ensp \" \"> <!-- en space, U+2002 ISOpub -->\n"
+"<!ENTITY emsp \" \"> <!-- em space, U+2003 ISOpub -->\n"
+"<!ENTITY thinsp \" \"> <!-- thin space, U+2009 ISOpub -->\n"
+"<!ENTITY zwnj \"‌\"> <!-- zero width non-joiner,\n"
+" U+200C NEW RFC 2070 -->\n"
+"<!ENTITY zwj \"‍\"> <!-- zero width joiner, U+200D NEW RFC 2070 -->\n"
+"<!ENTITY lrm \"‎\"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->\n"
+"<!ENTITY rlm \"‏\"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->\n"
+"<!ENTITY ndash \"–\"> <!-- en dash, U+2013 ISOpub -->\n"
+"<!ENTITY mdash \"—\"> <!-- em dash, U+2014 ISOpub -->\n"
+"<!ENTITY lsquo \"‘\"> <!-- left single quotation mark,\n"
+" U+2018 ISOnum -->\n"
+"<!ENTITY rsquo \"’\"> <!-- right single quotation mark,\n"
+" U+2019 ISOnum -->\n"
+"<!ENTITY sbquo \"‚\"> <!-- single low-9 quotation mark, U+201A NEW -->\n"
+"<!ENTITY ldquo \"“\"> <!-- left double quotation mark,\n"
+" U+201C ISOnum -->\n"
+"<!ENTITY rdquo \"”\"> <!-- right double quotation mark,\n"
+" U+201D ISOnum -->\n"
+"<!ENTITY bdquo \"„\"> <!-- double low-9 quotation mark, U+201E NEW -->\n"
+"<!ENTITY dagger \"†\"> <!-- dagger, U+2020 ISOpub -->\n"
+"<!ENTITY Dagger \"‡\"> <!-- double dagger, U+2021 ISOpub -->\n"
+"<!ENTITY permil \"‰\"> <!-- per mille sign, U+2030 ISOtech -->\n"
+"<!ENTITY lsaquo \"‹\"> <!-- single left-pointing angle quotation mark,\n"
+" U+2039 ISO proposed -->\n"
+"<!-- lsaquo is proposed but not yet ISO standardized -->\n"
+"<!ENTITY rsaquo \"›\"> <!-- single right-pointing angle quotation mark,\n"
+" U+203A ISO proposed -->\n"
+"<!-- rsaquo is proposed but not yet ISO standardized -->\n"
+"\n"
+"<!-- Currency Symbols -->\n"
+"<!ENTITY euro \"€\"> <!-- euro sign, U+20AC NEW -->\n"
+"<!-- Mathematical, Greek and Symbolic characters for XHTML -->\n"
+"\n"
+"<!-- Character entity set. Typical invocation:\n"
+" <!ENTITY % HTMLsymbol PUBLIC\n"
+" \"-//W3C//ENTITIES Symbols for XHTML//EN\"\n"
+" \"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent\">\n"
+" %HTMLsymbol;\n"
+"-->\n"
+"\n"
+"<!-- Portions (C) International Organization for Standardization 1986:\n"
+" Permission to copy in any form is granted for use with\n"
+" conforming SGML systems and applications as defined in\n"
+" ISO 8879, provided this notice is included in all copies.\n"
+"-->\n"
+"\n"
+"<!-- Relevant ISO entity set is given unless names are newly introduced.\n"
+" New names (i.e., not in ISO 8879 list) do not clash with any\n"
+" existing ISO 8879 entity names. ISO 10646 character numbers\n"
+" are given for each character, in hex. values are decimal\n"
+" conversions of the ISO 10646 values and refer to the document\n"
+" character set. Names are Unicode names. \n"
+"-->\n"
+"\n"
+"<!-- Latin Extended-B -->\n"
+"<!ENTITY fnof \"ƒ\"> <!-- latin small letter f with hook = function\n"
+" = florin, U+0192 ISOtech -->\n"
+"\n"
+"<!-- Greek -->\n"
+"<!ENTITY Alpha \"Α\"> <!-- greek capital letter alpha, U+0391 -->\n"
+"<!ENTITY Beta \"Β\"> <!-- greek capital letter beta, U+0392 -->\n"
+"<!ENTITY Gamma \"Γ\"> <!-- greek capital letter gamma,\n"
+" U+0393 ISOgrk3 -->\n"
+"<!ENTITY Delta \"Δ\"> <!-- greek capital letter delta,\n"
+" U+0394 ISOgrk3 -->\n"
+"<!ENTITY Epsilon \"Ε\"> <!-- greek capital letter epsilon, U+0395 -->\n"
+"<!ENTITY Zeta \"Ζ\"> <!-- greek capital letter zeta, U+0396 -->\n"
+"<!ENTITY Eta \"Η\"> <!-- greek capital letter eta, U+0397 -->\n"
+"<!ENTITY Theta \"Θ\"> <!-- greek capital letter theta,\n"
+" U+0398 ISOgrk3 -->\n"
+"<!ENTITY Iota \"Ι\"> <!-- greek capital letter iota, U+0399 -->\n"
+"<!ENTITY Kappa \"Κ\"> <!-- greek capital letter kappa, U+039A -->\n"
+"<!ENTITY Lambda \"Λ\"> <!-- greek capital letter lamda,\n"
+" U+039B ISOgrk3 -->\n"
+"<!ENTITY Mu \"Μ\"> <!-- greek capital letter mu, U+039C -->\n"
+"<!ENTITY Nu \"Ν\"> <!-- greek capital letter nu, U+039D -->\n"
+"<!ENTITY Xi \"Ξ\"> <!-- greek capital letter xi, U+039E ISOgrk3 -->\n"
+"<!ENTITY Omicron \"Ο\"> <!-- greek capital letter omicron, U+039F -->\n"
+"<!ENTITY Pi \"Π\"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->\n"
+"<!ENTITY Rho \"Ρ\"> <!-- greek capital letter rho, U+03A1 -->\n"
+"<!-- there is no Sigmaf, and no U+03A2 character either -->\n"
+"<!ENTITY Sigma \"Σ\"> <!-- greek capital letter sigma,\n"
+" U+03A3 ISOgrk3 -->\n"
+"<!ENTITY Tau \"Τ\"> <!-- greek capital letter tau, U+03A4 -->\n"
+"<!ENTITY Upsilon \"Υ\"> <!-- greek capital letter upsilon,\n"
+" U+03A5 ISOgrk3 -->\n"
+"<!ENTITY Phi \"Φ\"> <!-- greek capital letter phi,\n"
+" U+03A6 ISOgrk3 -->\n"
+"<!ENTITY Chi \"Χ\"> <!-- greek capital letter chi, U+03A7 -->\n"
+"<!ENTITY Psi \"Ψ\"> <!-- greek capital letter psi,\n"
+" U+03A8 ISOgrk3 -->\n"
+"<!ENTITY Omega \"Ω\"> <!-- greek capital letter omega,\n"
+" U+03A9 ISOgrk3 -->\n"
+"\n"
+"<!ENTITY alpha \"α\"> <!-- greek small letter alpha,\n"
+" U+03B1 ISOgrk3 -->\n"
+"<!ENTITY beta \"β\"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->\n"
+"<!ENTITY gamma \"γ\"> <!-- greek small letter gamma,\n"
+" U+03B3 ISOgrk3 -->\n"
+"<!ENTITY delta \"δ\"> <!-- greek small letter delta,\n"
+" U+03B4 ISOgrk3 -->\n"
+"<!ENTITY epsilon \"ε\"> <!-- greek small letter epsilon,\n"
+" U+03B5 ISOgrk3 -->\n"
+"<!ENTITY zeta \"ζ\"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->\n"
+"<!ENTITY eta \"η\"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->\n"
+"<!ENTITY theta \"θ\"> <!-- greek small letter theta,\n"
+" U+03B8 ISOgrk3 -->\n"
+"<!ENTITY iota \"ι\"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->\n"
+"<!ENTITY kappa \"κ\"> <!-- greek small letter kappa,\n"
+" U+03BA ISOgrk3 -->\n"
+"<!ENTITY lambda \"λ\"> <!-- greek small letter lamda,\n"
+" U+03BB ISOgrk3 -->\n"
+"<!ENTITY mu \"μ\"> <!-- greek small letter mu, U+03BC ISOgrk3 -->\n"
+"<!ENTITY nu \"ν\"> <!-- greek small letter nu, U+03BD ISOgrk3 -->\n"
+"<!ENTITY xi \"ξ\"> <!-- greek small letter xi, U+03BE ISOgrk3 -->\n"
+"<!ENTITY omicron \"ο\"> <!-- greek small letter omicron, U+03BF NEW -->\n"
+"<!ENTITY pi \"π\"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->\n"
+"<!ENTITY rho \"ρ\"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->\n"
+"<!ENTITY sigmaf \"ς\"> <!-- greek small letter final sigma,\n"
+" U+03C2 ISOgrk3 -->\n"
+"<!ENTITY sigma \"σ\"> <!-- greek small letter sigma,\n"
+" U+03C3 ISOgrk3 -->\n"
+"<!ENTITY tau \"τ\"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->\n"
+"<!ENTITY upsilon \"υ\"> <!-- greek small letter upsilon,\n"
+" U+03C5 ISOgrk3 -->\n"
+"<!ENTITY phi \"φ\"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->\n"
+"<!ENTITY chi \"χ\"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->\n"
+"<!ENTITY psi \"ψ\"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->\n"
+"<!ENTITY omega \"ω\"> <!-- greek small letter omega,\n"
+" U+03C9 ISOgrk3 -->\n"
+"<!ENTITY thetasym \"ϑ\"> <!-- greek theta symbol,\n"
+" U+03D1 NEW -->\n"
+"<!ENTITY upsih \"ϒ\"> <!-- greek upsilon with hook symbol,\n"
+" U+03D2 NEW -->\n"
+"<!ENTITY piv \"ϖ\"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->\n"
+"\n"
+"<!-- General Punctuation -->\n"
+"<!ENTITY bull \"•\"> <!-- bullet = black small circle,\n"
+" U+2022 ISOpub -->\n"
+"<!-- bullet is NOT the same as bullet operator, U+2219 -->\n"
+"<!ENTITY hellip \"…\"> <!-- horizontal ellipsis = three dot leader,\n"
+" U+2026 ISOpub -->\n"
+"<!ENTITY prime \"′\"> <!-- prime = minutes = feet, U+2032 ISOtech -->\n"
+"<!ENTITY Prime \"″\"> <!-- double prime = seconds = inches,\n"
+" U+2033 ISOtech -->\n"
+"<!ENTITY oline \"‾\"> <!-- overline = spacing overscore,\n"
+" U+203E NEW -->\n"
+"<!ENTITY frasl \"⁄\"> <!-- fraction slash, U+2044 NEW -->\n"
+"\n"
+"<!-- Letterlike Symbols -->\n"
+"<!ENTITY weierp \"℘\"> <!-- script capital P = power set\n"
+" = Weierstrass p, U+2118 ISOamso -->\n"
+"<!ENTITY image \"ℑ\"> <!-- black-letter capital I = imaginary part,\n"
+" U+2111 ISOamso -->\n"
+"<!ENTITY real \"ℜ\"> <!-- black-letter capital R = real part symbol,\n"
+" U+211C ISOamso -->\n"
+"<!ENTITY trade \"™\"> <!-- trade mark sign, U+2122 ISOnum -->\n"
+"<!ENTITY alefsym \"ℵ\"> <!-- alef symbol = first transfinite cardinal,\n"
+" U+2135 NEW -->\n"
+"<!-- alef symbol is NOT the same as hebrew letter alef,\n"
+" U+05D0 although the same glyph could be used to depict both characters -->\n"
+"\n"
+"<!-- Arrows -->\n"
+"<!ENTITY larr \"←\"> <!-- leftwards arrow, U+2190 ISOnum -->\n"
+"<!ENTITY uarr \"↑\"> <!-- upwards arrow, U+2191 ISOnum-->\n"
+"<!ENTITY rarr \"→\"> <!-- rightwards arrow, U+2192 ISOnum -->\n"
+"<!ENTITY darr \"↓\"> <!-- downwards arrow, U+2193 ISOnum -->\n"
+"<!ENTITY harr \"↔\"> <!-- left right arrow, U+2194 ISOamsa -->\n"
+"<!ENTITY crarr \"↵\"> <!-- downwards arrow with corner leftwards\n"
+" = carriage return, U+21B5 NEW -->\n"
+"<!ENTITY lArr \"⇐\"> <!-- leftwards double arrow, U+21D0 ISOtech -->\n"
+"<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow\n"
+" but also does not have any other character for that function. So lArr can\n"
+" be used for 'is implied by' as ISOtech suggests -->\n"
+"<!ENTITY uArr \"⇑\"> <!-- upwards double arrow, U+21D1 ISOamsa -->\n"
+"<!ENTITY rArr \"⇒\"> <!-- rightwards double arrow,\n"
+" U+21D2 ISOtech -->\n"
+"<!-- Unicode does not say this is the 'implies' character but does not have \n"
+" another character with this function so rArr can be used for 'implies'\n"
+" as ISOtech suggests -->\n"
+"<!ENTITY dArr \"⇓\"> <!-- downwards double arrow, U+21D3 ISOamsa -->\n"
+"<!ENTITY hArr \"⇔\"> <!-- left right double arrow,\n"
+" U+21D4 ISOamsa -->\n"
+"\n"
+"<!-- Mathematical Operators -->\n"
+"<!ENTITY forall \"∀\"> <!-- for all, U+2200 ISOtech -->\n"
+"<!ENTITY part \"∂\"> <!-- partial differential, U+2202 ISOtech -->\n"
+"<!ENTITY exist \"∃\"> <!-- there exists, U+2203 ISOtech -->\n"
+"<!ENTITY empty \"∅\"> <!-- empty set = null set, U+2205 ISOamso -->\n"
+"<!ENTITY nabla \"∇\"> <!-- nabla = backward difference,\n"
+" U+2207 ISOtech -->\n"
+"<!ENTITY isin \"∈\"> <!-- element of, U+2208 ISOtech -->\n"
+"<!ENTITY notin \"∉\"> <!-- not an element of, U+2209 ISOtech -->\n"
+"<!ENTITY ni \"∋\"> <!-- contains as member, U+220B ISOtech -->\n"
+"<!ENTITY prod \"∏\"> <!-- n-ary product = product sign,\n"
+" U+220F ISOamsb -->\n"
+"<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though\n"
+" the same glyph might be used for both -->\n"
+"<!ENTITY sum \"∑\"> <!-- n-ary summation, U+2211 ISOamsb -->\n"
+"<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'\n"
+" though the same glyph might be used for both -->\n"
+"<!ENTITY minus \"−\"> <!-- minus sign, U+2212 ISOtech -->\n"
+"<!ENTITY lowast \"∗\"> <!-- asterisk operator, U+2217 ISOtech -->\n"
+"<!ENTITY radic \"√\"> <!-- square root = radical sign,\n"
+" U+221A ISOtech -->\n"
+"<!ENTITY prop \"∝\"> <!-- proportional to, U+221D ISOtech -->\n"
+"<!ENTITY infin \"∞\"> <!-- infinity, U+221E ISOtech -->\n"
+"<!ENTITY ang \"∠\"> <!-- angle, U+2220 ISOamso -->\n"
+"<!ENTITY and \"∧\"> <!-- logical and = wedge, U+2227 ISOtech -->\n"
+"<!ENTITY or \"∨\"> <!-- logical or = vee, U+2228 ISOtech -->\n"
+"<!ENTITY cap \"∩\"> <!-- intersection = cap, U+2229 ISOtech -->\n"
+"<!ENTITY cup \"∪\"> <!-- union = cup, U+222A ISOtech -->\n"
+"<!ENTITY int \"∫\"> <!-- integral, U+222B ISOtech -->\n"
+"<!ENTITY there4 \"∴\"> <!-- therefore, U+2234 ISOtech -->\n"
+"<!ENTITY sim \"∼\"> <!-- tilde operator = varies with = similar to,\n"
+" U+223C ISOtech -->\n"
+"<!-- tilde operator is NOT the same character as the tilde, U+007E,\n"
+" although the same glyph might be used to represent both -->\n"
+"<!ENTITY cong \"≅\"> <!-- approximately equal to, U+2245 ISOtech -->\n"
+"<!ENTITY asymp \"≈\"> <!-- almost equal to = asymptotic to,\n"
+" U+2248 ISOamsr -->\n"
+"<!ENTITY ne \"≠\"> <!-- not equal to, U+2260 ISOtech -->\n"
+"<!ENTITY equiv \"≡\"> <!-- identical to, U+2261 ISOtech -->\n"
+"<!ENTITY le \"≤\"> <!-- less-than or equal to, U+2264 ISOtech -->\n"
+"<!ENTITY ge \"≥\"> <!-- greater-than or equal to,\n"
+" U+2265 ISOtech -->\n"
+"<!ENTITY sub \"⊂\"> <!-- subset of, U+2282 ISOtech -->\n"
+"<!ENTITY sup \"⊃\"> <!-- superset of, U+2283 ISOtech -->\n"
+"<!ENTITY nsub \"⊄\"> <!-- not a subset of, U+2284 ISOamsn -->\n"
+"<!ENTITY sube \"⊆\"> <!-- subset of or equal to, U+2286 ISOtech -->\n"
+"<!ENTITY supe \"⊇\"> <!-- superset of or equal to,\n"
+" U+2287 ISOtech -->\n"
+"<!ENTITY oplus \"⊕\"> <!-- circled plus = direct sum,\n"
+" U+2295 ISOamsb -->\n"
+"<!ENTITY otimes \"⊗\"> <!-- circled times = vector product,\n"
+" U+2297 ISOamsb -->\n"
+"<!ENTITY perp \"⊥\"> <!-- up tack = orthogonal to = perpendicular,\n"
+" U+22A5 ISOtech -->\n"
+"<!ENTITY sdot \"⋅\"> <!-- dot operator, U+22C5 ISOamsb -->\n"
+"<!-- dot operator is NOT the same character as U+00B7 middle dot -->\n"
+"\n"
+"<!-- Miscellaneous Technical -->\n"
+"<!ENTITY lceil \"⌈\"> <!-- left ceiling = APL upstile,\n"
+" U+2308 ISOamsc -->\n"
+"<!ENTITY rceil \"⌉\"> <!-- right ceiling, U+2309 ISOamsc -->\n"
+"<!ENTITY lfloor \"⌊\"> <!-- left floor = APL downstile,\n"
+" U+230A ISOamsc -->\n"
+"<!ENTITY rfloor \"⌋\"> <!-- right floor, U+230B ISOamsc -->\n"
+"<!ENTITY lang \"〈\"> <!-- left-pointing angle bracket = bra,\n"
+" U+2329 ISOtech -->\n"
+"<!-- lang is NOT the same character as U+003C 'less than sign' \n"
+" or U+2039 'single left-pointing angle quotation mark' -->\n"
+"<!ENTITY rang \"〉\"> <!-- right-pointing angle bracket = ket,\n"
+" U+232A ISOtech -->\n"
+"<!-- rang is NOT the same character as U+003E 'greater than sign' \n"
+" or U+203A 'single right-pointing angle quotation mark' -->\n"
+"\n"
+"<!-- Geometric Shapes -->\n"
+"<!ENTITY loz \"◊\"> <!-- lozenge, U+25CA ISOpub -->\n"
+"\n"
+"<!-- Miscellaneous Symbols -->\n"
+"<!ENTITY spades \"♠\"> <!-- black spade suit, U+2660 ISOpub -->\n"
+"<!-- black here seems to mean filled as opposed to hollow -->\n"
+"<!ENTITY clubs \"♣\"> <!-- black club suit = shamrock,\n"
+" U+2663 ISOpub -->\n"
+"<!ENTITY hearts \"♥\"> <!-- black heart suit = valentine,\n"
+" U+2665 ISOpub -->\n"
+"<!ENTITY diams \"♦\"> <!-- black diamond suit, U+2666 ISOpub -->\n"
+;